<!doctype html>



  


<html class="theme-next pisces use-motion" lang="zh-Hans">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>



<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />












  
  
  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />




  
  
  
  

  
    
    
  

  

  
    
      
    

    
  

  
    
      
    

    
  

  

  
    
    
    <link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic|Roboto:300,300italic,400,400italic,700,700italic|Georgia:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
  






<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=5.1.0" rel="stylesheet" type="text/css" />


  <meta name="keywords" content="Linux常用命令," />





  <link rel="alternate" href="https://www.leolan.top/atom.xml" title="LeoLan's Blog" type="application/atom+xml" />




  <link rel="shortcut icon" type="image/x-icon" href="/200.png?v=5.1.0" />






<meta name="description" content="系统管理类分析空间大小分析空间大小（根目录下个文件夹大小）:du -sh /*

定时任务123456crontab status                #crontab 状态 crontab -e                    #编辑配置文件/sbin/service crond start     #启动服务 /sbin/service crond stop      #关">
<meta property="og:type" content="article">
<meta property="og:title" content="Linux常用命令">
<meta property="og:url" content="https://www.leolan.top/posts/48230/index.html">
<meta property="og:site_name" content="LeoLan's Blog">
<meta property="og:description" content="系统管理类分析空间大小分析空间大小（根目录下个文件夹大小）:du -sh /*

定时任务123456crontab status                #crontab 状态 crontab -e                    #编辑配置文件/sbin/service crond start     #启动服务 /sbin/service crond stop      #关">
<meta property="og:updated_time" content="2016-12-10T02:23:04.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Linux常用命令">
<meta name="twitter:description" content="系统管理类分析空间大小分析空间大小（根目录下个文件夹大小）:du -sh /*

定时任务123456crontab status                #crontab 状态 crontab -e                    #编辑配置文件/sbin/service crond start     #启动服务 /sbin/service crond stop      #关">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Pisces',
    sidebar: {"position":"left","display":"post"},
    fancybox: true,
    motion: true,
    duoshuo: {
      userId: '6343395544286627000',
      author: '博主'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: "",
      labels: ""
    }
  };
</script>



  <link rel="canonical" href="https://www.leolan.top/posts/48230/"/>





  <title> Linux常用命令 | LeoLan's Blog </title>
</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">

  










  
  
    
  

  <div class="container one-collumn sidebar-position-left page-post-detail ">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-meta ">
  

  <div class="custom-logo-site-title">
    <a href="/"  class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <span class="site-title">LeoLan's Blog</span>
      <span class="logo-line-after"><i></i></span>
    </a>
  </div>
  <p class="site-subtitle">有时候正是不报期望的人做出了人们不敢期望之事！</p>
</div>

<div class="site-nav-toggle">
  <button>
    <span class="btn-bar"></span>
    <span class="btn-bar"></span>
    <span class="btn-bar"></span>
  </button>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
            
            首页
          </a>
        </li>
      
        
        <li class="menu-item menu-item-categories">
          <a href="/categories" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
            
            分类
          </a>
        </li>
      
        
        <li class="menu-item menu-item-tags">
          <a href="/tags" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
            
            标签云
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/archives" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
            
            时间轴
          </a>
        </li>
      
        
        <li class="menu-item menu-item-about">
          <a href="/about" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-user"></i> <br />
            
            关于
          </a>
        </li>
      
        
        <li class="menu-item menu-item-guestbook">
          <a href="/guestbook" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-commenting"></i> <br />
            
            给我留言
          </a>
        </li>
      

      
        <li class="menu-item menu-item-search">
          
            <a href="javascript:;" class="popup-trigger">
          
            
              <i class="menu-item-icon fa fa-search fa-fw"></i> <br />
            
            本地搜索
          </a>
        </li>
               
    </ul>
  

  
    <div class="site-search">
      
  <div class="popup">
 <span class="search-icon fa fa-search"></span>
 <input type="text" id="local-search-input">
 <div id="local-search-result"></div>
 <span class="popup-btn-close">close</span>
</div>


    </div>
  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  

  
  
  

  <article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
  <link itemprop="mainEntityOfPage" href="https://www.leolan.top/posts/48230/">

  <span style="display:none" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <meta itemprop="name" content="LeoLan">
    <meta itemprop="description" content="">
    <meta itemprop="image" content="/images/avatar.jpg">
  </span>

  <span style="display:none" itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
    <meta itemprop="name" content="LeoLan's Blog">
    <span style="display:none" itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
      <img style="display:none;" itemprop="url image" alt="LeoLan's Blog" src="">
    </span>
  </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
            
            
              
                Linux常用命令
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">
            <span class="post-meta-item-icon">
              <i class="fa fa-calendar-o"></i>
            </span>
            <span class="post-meta-item-text">发表于</span>
            <time title="Post created" itemprop="dateCreated datePublished" datetime="2016-11-25T11:23:02+08:00">
              2016-11-25
            </time>

            &nbsp;|&nbsp;

            <span class="post-meta-item-icon">
              <i class="fa fa-calendar-check-o"></i>
            </span>
            <time title="Post modified" itemprop="dateModified" datetime="2016-12-10T10:23:04+08:00">
              2016-12-10
            </time>
            
          </span>

          
            <span class="post-category" >
              &nbsp; | &nbsp;
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/系统管理/" itemprop="url" rel="index">
                    <span itemprop="name">系统管理</span>
                  </a>
                </span>

                
                

              
            </span>
          

          
            
              <span class="post-comments-count">
                &nbsp; | &nbsp;
                <a href="/posts/48230/#comments" itemprop="discussionUrl">
                  <span class="post-comments-count ds-thread-count" data-thread-key="posts/48230/" itemprop="commentCount"></span>
                </a>
              </span>
            
          

          

          
          
             <span id="/posts/48230/" class="leancloud_visitors" data-flag-title="Linux常用命令">
               &nbsp; | &nbsp;
               <span class="post-meta-item-icon">
                 <i class="fa fa-eye"></i>
               </span>
               <span class="post-meta-item-text">阅读次数 </span>
               <span class="leancloud-visitors-count"></span>
              </span>
          

         <span class="post-time">
     &nbsp; | &nbsp;
           <span class="post-meta-item-icon">
             <i class="fa fa-calendar-o"></i>
           </span>
           <span class="post-meta-item-text">字数统计:</span>
           <span class="post-count">6,016(字)</span>
           
         </span>


          
          
          

        </div>
      </header>
    


    <div class="post-body" itemprop="articleBody">

      
      

      
        <script src="/assets/js/DPlayer.min.js"> </script><script src="/assets/js/APlayer.min.js"> </script><h1 id="系统管理类"><a href="#系统管理类" class="headerlink" title="系统管理类"></a>系统管理类</h1><h2 id="分析空间大小"><a href="#分析空间大小" class="headerlink" title="分析空间大小"></a>分析空间大小</h2><p>分析空间大小（根目录下个文件夹大小）:<code>du -sh /*</code></p>
<hr>
<h2 id="定时任务"><a href="#定时任务" class="headerlink" title="定时任务"></a>定时任务</h2><figure class="highlight awk"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">crontab status                <span class="comment">#crontab 状态 </span></div><div class="line">crontab -e                    <span class="comment">#编辑配置文件</span></div><div class="line"><span class="regexp">/sbin/</span>service crond start     <span class="comment">#启动服务 </span></div><div class="line"><span class="regexp">/sbin/</span>service crond stop      <span class="comment">#关闭服务 </span></div><div class="line"><span class="regexp">/sbin/</span>service crond restart   <span class="comment">#重启服务 </span></div><div class="line"><span class="regexp">/sbin/</span>service crond reload    <span class="comment">#重新载入配置</span></div></pre></td></tr></table></figure>
<p>格式：<br><figure class="highlight awk"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">*<span class="regexp">/25 * * * * /</span>opt<span class="regexp">/xxx/</span>xxx<span class="regexp">/restart.sh</span></div></pre></td></tr></table></figure></p>
<p><strong>crontab文件的含义</strong>：用户所建立的crontab文件中，每一行都代表一项任务，每行的每个字段代表一项设置，它的格式共分为六个字段，前五段是时间设定段，第六段是要执行的命令段，<br>格式如下： <strong>minute hour day month week command</strong> 顺序：<strong>分 时 日 月 周 </strong></p>
<ul>
<li><strong>minute</strong>： 表示分钟，可以是从0到59之间的任何整数。</li>
<li><strong>hour</strong>：表示小时，可以是从0到23之间的任何整数。 </li>
<li><strong>day</strong>：表示日期，可以是从1到31之间的任何整数。 </li>
<li><strong>month</strong>：表示月份，可以是从1到12之间的任何整数。 </li>
<li><strong>week</strong>：表示星期几，可以是从0到7之间的任何整数，这里的0或7代表星期日。 </li>
<li><strong>command</strong>：要执行的命令，可以是系统命令，也可以是自己编写的脚本文件。 </li>
</ul>
<p>可以使用以下特殊字符：<br><strong>星号（*）</strong>：代表所有可能的值，例如month字段如果是星号，则表示在满足其它字段的制约条件后每月都执行该命令操作。<br><strong>逗号（,）</strong>：可以用逗号隔开的值指定一个列表范围，例如，“1,2,5,7,8,9”<br><strong>中杠（-）</strong>：可以用整数之间的中杠表示一个整数范围，例如“2-6”表示“2,3,4,5,6”<br><strong>正斜线（/）</strong>：可以用正斜线指定时间的间隔频率，例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用，例如*/10，如果用在minute字段，表示每十分钟执行一次。</p>
<hr>
<h2 id="命令执行"><a href="#命令执行" class="headerlink" title="命令执行"></a>命令执行</h2><p>顺序执行多条命令可以用<code>;</code>来隔开<strong>（即使前面一条命令没有正确执行，后面的命令也会执行）</strong></p>
<p><code>&amp;&amp;</code>实现选择性执行的，它<strong>表示如果前面的命令执行结果返回0(前一条命令正确执行)，才执行后面的，否则不执行</strong>（不是表示终端输出的内容，而是表示命令执行状态的结果），用<code>echo $?</code>环境变量可以查看上一次命令的执行结果。</p>
<p>shell中的<code>||</code>除了用于表示逻辑与和或之外，还可以实现命令执行顺序的简单控制。<code>||</code>是与<code>&amp;&amp;</code>相反的控制效果，当上一条命令执行结果为<strong>≠0($?≠0)</strong>时(上一条命令执行失败)，则执行它后面的命令。</p>
<hr>
<h2 id="后台运行命令"><a href="#后台运行命令" class="headerlink" title="后台运行命令"></a>后台运行命令</h2><ul>
<li>1.<code>screen [command]</code></li>
<li>2.<code>[command] &amp;</code></li>
<li>3.<code>nohup [command] &amp;</code></li>
<li><strong>nohup命令</strong>：如果你正在运行一个进程，而且你觉得在退出帐户时该进程还不会结束，那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 　　<br>该命令的一般形式为：<code>nohup command &amp;</code> 　　使用nohup命令提交作业<br>如果使用nohup命令提交作业，那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中，除非另外指定了输出文件： 　　<br><code>nohup command &gt; myout.file 2&gt;&amp;1 &amp;</code><br>在上面的例子中，输出被重定向到myout.file文件中。 　　<br>使用 <code>jobs</code> 查看任务。 　　<br>使用 <code>fg %n</code>　关闭。 　　</li>
</ul>
<hr>
<h2 id="交互界面的开机启动项：ntsysv-centos"><a href="#交互界面的开机启动项：ntsysv-centos" class="headerlink" title="交互界面的开机启动项：ntsysv(centos)"></a>交互界面的开机启动项：<code>ntsysv</code>(centos)</h2><p><strong>--back</strong>：在互动式界面里，显示Back钮，而非cancel钮。<br>使用空格键选择或者取消选项！</p>
<hr>
<h2 id="dd命令"><a href="#dd命令" class="headerlink" title="dd命令"></a>dd命令</h2><p><code>dd --help</code>或是<code>info dd</code></p>
<p>输入或输出<br><code>dd if=[STDIN] of=[STDOUT]</code><br>例：<br><code>dd if=ubuntu-13.10-desktop-amd64.iso of=/dev/sdb2</code><strong>把光盘写进磁盘</strong><br>当然你可以拿这个来方便的拷贝光碟(注意，你的光碟是标准的 iso9660格式才可以这么做！)</p>
<p><code>dd if=/dev/cdrom of=cdrom.iso</code><strong>把光驱内容保存为iso镜像文件</strong></p>
<p>同理，要把一张磁盘的内容拷贝到另一张磁盘上，利用/tmp作为临时存储区。把源盘插入驱动器中，输入下述命令：<br><code>dd if =/dev/xxx of = /tmp/tmpfile</code><br>拷贝完成后，将源盘从驱动器中取出，把目标盘插入，输入命令：<br><code>dd if = /tmp/tmpfile of =/dev/xxx</code><br>软盘拷贝完成后，应该将临时文件删除：<br><code>rm /tmp/tmpfile</code></p>
<p>如果两个设备能同时工作：<code>dd if =/dev/xxx of = /dev/xxx</code></p>
<ul>
<li><strong>/dev/null</strong> 它是空设备，也称为位桶（bit bucket）。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件，那么可以将消息重定向到位桶。</li>
<li><strong>/dev/zero</strong>该设备无穷尽地提供0，可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。<br><code>dd if=/dev/zero of=./test.txt bs=1k count=1</code><br><strong>/dev/zero</strong>还可用于擦除磁盘数据</li>
</ul>
<hr>
<h2 id="时区时间"><a href="#时区时间" class="headerlink" title="时区时间"></a>时区时间</h2><p><strong>时区修改</strong><br><code>cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</code> 提示覆盖的就覆盖掉<br><code>date</code>  看到有CST字样为中国标准时间; <code>date -R</code>  看到+0800  是东八区</p>
<p><strong>修改硬件时钟</strong>（每次开机都是从硬件读取时间的，首先硬件时间要正确）<br><code>hwclock --show</code>   显示当前硬件时间<br><code>hwclock --set --date=&quot;10/28/16 10:04:00&quot;</code>   （月/日/年 时:分:秒）</p>
<ul>
<li><p>1.<strong>硬件时钟</strong>与<strong>系统时钟</strong>同步<br><strong>hc</strong>代表硬件时间，<strong>sys</strong>代表系统时间，即用硬件时钟同步到系统时钟<br><code>hwclock --hctosys</code> 或者<code>clock --hctosys</code><br><code>date</code>    #查看当前系统时间</p>
</li>
<li><p>2.<strong>系统时钟</strong>和<strong>硬件时钟</strong>同步（一般是系统自动同步Internet时间后才把最新时间同步到硬件中）<br><code>hwclock --systohc</code>或者<code>clock --systohc</code>  即用系统时钟同步到硬件时钟</p>
</li>
</ul>
<p>注：<strong>tzselect</strong> 命令也可以交互界面选择修改，但最后还要执行一个提示设置时区的命令，并写入环境变量中，重启才能生效。</p>
<hr>
<hr>
<h1 id="文件、目录类"><a href="#文件、目录类" class="headerlink" title="文件、目录类"></a>文件、目录类</h1><h2 id="cd"><a href="#cd" class="headerlink" title="cd"></a>cd</h2><p><strong>cd</strong> ：进入用户主目录；<br><strong>cd ~</strong> ：进入用户主目录；<br><strong>cd -</strong> ：返回进入此目录之前所在的目录；<br><strong>cd !$</strong> ： 把上个命令的参数作为cd参数使用</p>
<hr>
<h2 id="权限设置"><a href="#权限设置" class="headerlink" title="权限设置"></a>权限设置</h2><h3 id="数字设定法"><a href="#数字设定法" class="headerlink" title="数字设定法"></a>数字设定法</h3><p><strong>0表示没有权限，1表示可执行权限， 2表示可写权限，4表示可读权限</strong>，然后将其相加。所以数字属性的格式应为3个从0到7的八进制数，其顺序是（<strong>u</strong>）（<strong>g</strong>）（<strong>o</strong>）。</p>
<p>例如，如果想让某个文件的属主有“读/写”二种权限，需要把4（可读）+2（可写）＝6（读/写）。<br>数字设定法的一般形式为：<br>语法：<code>chmod [mode] 文件名</code><br>例如：chmod 755 mm.txt</p>
<h3 id="文字设定法"><a href="#文字设定法" class="headerlink" title="文字设定法"></a>文字设定法</h3><p>语法：<code>chmod [who] [+ | - | =] [mode] 文件名</code><br>命令中各选项的含义为：<br>操作对象who可是下述字母中的任一个或者它们的组合：</p>
<ul>
<li>u 表示“用户（user）”，即文件或目录的所有者。</li>
<li>g 表示“同组（group）用户”，即与文件属主有相同组ID的所有用户。</li>
<li>o 表示“其他（others）用户”。</li>
<li>a 表示“所有（all）用户”。它是系统默认值。<br>操作符号可以是：</li>
<li>+ 添加某个权限。</li>
<li>- 取消某个权限。</li>
<li>= 赋予给定权限并取消其他所有权限（如果有的话）。</li>
</ul>
<p>设置 mode 所表示的权限可用下述字母的任意组合：</p>
<ul>
<li>r 可读。</li>
<li>w 可写。</li>
<li>x 可执行。</li>
<li>X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。</li>
<li>s 在文件执行时把进程的属主或组ID置为该文件的文件属主。</li>
</ul>
<p>方式“u＋s”设置文件的用户ID位，“g＋s”设置组ID位。</p>
<ul>
<li>t 保存程序的文本到交换设备上。</li>
<li>u 与文件属主拥有一样的权限。</li>
<li>g 与和文件属主同组的用户拥有一样的权限。</li>
<li>o 与其他用户拥有一样的权限。</li>
</ul>
<p><strong>文件名</strong>：以空格分开的要改变权限的文件列表，支持通配符。</p>
<hr>
<h2 id="CUT命令"><a href="#CUT命令" class="headerlink" title="CUT命令"></a>CUT命令</h2><ul>
<li>-b：仅显示行中指定直接范围的内容； </li>
<li>-c：仅显示行中指定范围的字符；</li>
<li>-d：指定字段的分隔符，默认的字段分隔符为“TAB”； </li>
<li>-f：显示指定字段的内容； </li>
<li>-n：与“-b”选项连用，不分割多字节字符； </li>
<li>--complement：补足被选择的字节、字符或字段； </li>
<li>--out-delimiter=&lt;字段分隔符&gt;：指定输出内容是的字段分割符； </li>
<li>--help：显示指令的帮助信息； </li>
<li>--version：显示指令的版本信息。</li>
</ul>
<p>打印/etc/passwd文件中以<strong>:</strong>为分隔符的第1个字段和第6个字段分别表示用户名和其家目录：<code>cut /etc/passwd -d &#39;:&#39; -f 1,6</code><br>前五个（包含第五个）：<code>cut /etc/passwd -c -5</code><br>前五个之后的（包含第五个）：<code>cut /etc/passwd -c 5-</code><br>第五个：<code>cut /etc/passwd -c 5</code><br>2到5之间的（包含第五个）： <code>cut /etc/passwd -c 2-5</code></p>
<hr>
<h2 id="查找近期修改的文件"><a href="#查找近期修改的文件" class="headerlink" title="查找近期修改的文件"></a>查找近期修改的文件</h2><p>比如按名字查找一个文件，可以用<code>find / -name filename</code><br>按时间查找也有参数</p>
<ul>
<li><strong>-atime</strong> 访问时间</li>
<li><strong>-ctime</strong> 改变状态的时间</li>
<li><strong>-mtime</strong>修改的时间。<br>这里的时间是以24小时为单位的。</li>
</ul>
<p><code>find . -name &#39;*.html&#39; -type f -mmin -30</code>：当前目录最近30分钟内修改过的html文件<br><code>find . -name &#39;*.html&#39; -type f -mmin -30 -ls</code>：最近30分钟内修改过的文件，的详细情况<br><code>find ./ -mtime 0</code>：返回最近24小时内修改过的文件。<br><code>find ./ -mtime 1</code> ： 返回的是前48~24小时修改过的文件。而不是48小时以内修改过的文件。<br><code>find . -type f -mtime +1</code>：最近1天前（2天内）修改过的常规文件<br><code>find . -mtime -2 -type f</code>：48小时以内修改过的文件</p>
<p>那怎么返回10天内修改过的文件？find支持表达式关系运算，所以可以把最近几天的数据一天天的加起来：<br><code>find ./ -mtime 0 -o -mtime 1 -o -mtime 2</code> 虽然比较土，但也算是个方法了。</p>
<p>参考：<a href="http://man.linuxde.net/find" target="_blank" rel="external">http://man.linuxde.net/find</a></p>
<hr>
<h2 id="echo"><a href="#echo" class="headerlink" title="echo"></a>echo</h2><p><strong>echo “ok” &gt; test.txt</strong> ：用ok字符覆盖掉test.txt内容，<strong>&gt;表示追加并覆盖</strong>的意思。<br><strong>echo “ok” &gt;&gt; test.txt</strong>：向test.txt文件追加OK字符，不覆盖原文件里的内容。<strong>&gt;&gt;表示尾行追加</strong>。</p>
<hr>
<h2 id="计算MD5"><a href="#计算MD5" class="headerlink" title="计算MD5"></a>计算MD5</h2><p>计算MD5：<code>md5sum filename</code></p>
<hr>
<h2 id="文件上下传"><a href="#文件上下传" class="headerlink" title="文件上下传"></a>文件上下传</h2><h3 id="SCP"><a href="#SCP" class="headerlink" title="SCP"></a>SCP</h3><figure class="highlight groovy"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">scp <span class="regexp">/home/</span>git<span class="regexp">/.ssh/</span>id_rsa.pub <span class="string">gitServer:</span><span class="regexp">/home/</span>git</div></pre></td></tr></table></figure>
<h3 id="lrzsz-Windows-Linux"><a href="#lrzsz-Windows-Linux" class="headerlink" title="lrzsz(Windows-Linux)"></a>lrzsz(Windows-Linux)</h3><p>rz  上传文件<br>sz  下载文件</p>
<h3 id="ncftp"><a href="#ncftp" class="headerlink" title="ncftp"></a>ncftp</h3><p>另外有两个常用的ftp工具<strong>ncftpget</strong>和<strong>ncftpput</strong>，可以实现<strong>后台的ftp上传和下载</strong>，这样我就可以利用这些命令在后台上传和下载文件了。</p>
<hr>
<h3 id="man手册转为PDF"><a href="#man手册转为PDF" class="headerlink" title="man手册转为PDF"></a>man手册转为PDF</h3><p>把man的帮助转换成PDF文档：<code>man -t [command] | ps2pdf - filename.pdf</code></p>
<hr>
<h2 id="管道符、awk等高级控制"><a href="#管道符、awk等高级控制" class="headerlink" title="管道符、awk等高级控制"></a>管道符、awk等高级控制</h2><p>“<strong>|</strong>”管道符是左边命令的标准输出(stdout)给右边命令作为标准输入（stdin）;<br>“<strong>&lt;</strong>”是右边文件名指定的文件内容读入为左边命令的标准输入（stdin）；<br>“<strong>&gt;</strong>”是左边命令的输出覆盖写到右边指定的文件中。</p>
<p><code>ps aux |grep XXX |awk &#39;{print $11}&#39; | grep -v &#39;grep&#39; | wc -l</code></p>
<ul>
<li><strong>grep -v ‘grep’</strong>  过滤带grep的部分 取反</li>
<li><strong>wc -l </strong>          统计行数</li>
<li><strong>sort -nr </strong>       排序</li>
</ul>
<hr>
<p><code>grep -rnI &quot;myleolan&quot; ~</code></p>
<ul>
<li>-r 参数表示递归搜索子目录中的文件,</li>
<li>-n表示打印匹配项行号，</li>
<li>-I表示忽略二进制文件。<br>查看环境变量中以”leolan”结尾的字符串：<code>export | grep &quot;.*leolan$&quot;</code><br>其中<code>$</code>就表示一行的末尾。</li>
</ul>
<hr>
<p><strong>wc</strong> 命令用于统计并输出一个文件中行、单词和字节的数目<br>分别只输出行数、单词数、字节数、字符数和输入文本中最长一行的字节数：<br>行数：<code>wc -l /etc/passwd</code><br>单词数：<code>wc -w /etc/passwd</code><br>字节数：<code>wc -c /etc/passwd</code><br>字符数：<code>wc -m /etc/passwd</code><br>最长行字节数：<code>wc -L /etc/passwd</code></p>
<p>注意：对于西文字符来说，一个字符就是一个字节，但对于中文字符一个汉字是大于2个字节的，具体数目是由字符编码决定的</p>
<hr>
<p><strong>sort </strong>排序命令<br>将输入按照一定方式排序，然后再输出,它支持的排序有按字典排序,数字排序，按月份排序，随机排序，反转排序，指定特定字段进行排序等等。<br>默认为字典排序：<code>cat /etc/passswd | sort</code><br>反转排序：<code>cat /etc/passwd | sort -r</code><br>按特定字段排序：<code>cat /etc/passwd | sort -t&#39;:&#39; -k 3 -n</code></p>
<p>上面的<strong>-t</strong>参数用于指定字段的分隔符，这里是以<strong>“:”</strong>作为分隔符；<br><strong>-k</strong> 字段号用于指定对哪一个字段进行排序。这里/etc/passwd文件的第三个字段为数字，默认情况下是一字典序排序的，如果要按照数字排序就要加上<strong>-n</strong>参数</p>
<hr>
<p><strong>uniq</strong> 去重命令<br>uniq命令可以用于过滤或者输出重复行。<br>  ● 过滤重复行<br>我们可以使用<strong>history</strong>命令查看最近执行过的命令（实际为读取<strong>${SHELL}_history</strong>文件），那么你可能就会要想去掉命令后面的参数然后去掉重复的命令：<code>history | cut -c 8- | cut -d &#39; &#39; -f 1 | uniq</code></p>
<p>然后经过层层过滤，你会发现确是只输出了执行的命令那一列，不过去重效果好像不明显，仔细看你会发现它趋势去重了，只是不那么明显，之所以不明显是因为uniq命令只能去连续重复的行，不是全文去重，所以要达到预期效果，我们先排序：<br><code>history | cut -c 8- | cut -d &#39; &#39; -f 1 | sort | uniq</code><br>或者<code>history | cut -c 8- | cut -d &#39; &#39; -f 1 | sort -u</code></p>
<p>  ● 输出重复行<br>输出重复过的行（重复的只输出一个）及重复次数：<br><code>history | cut -c 8- | cut -d &#39; &#39; -f 1 | sort | uniq -dc</code><br>输出所有重复的行：<br><code>history | cut -c 8- | cut -d &#39; &#39; -f 1 | sort | uniq -D</code></p>
<hr>
<p><strong>tr</strong> 命令<br>tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。<br>常用的选项有：</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>-d</td>
<td>删除和set1匹配的字符，注意不是全词匹配也不是按字符顺序匹配</td>
</tr>
<tr>
<td>-s</td>
<td>去除set1指定的在输入文本中连续并重复的字符</td>
</tr>
</tbody>
</table>
<p>删除 “hello shiyanlou” 中所有的’o’,’l’,’h’：<code>echo &#39;hello shiyanlou&#39; | tr -d &#39;olh&#39;</code><br>将”hello” 中的ll,去重为一个l：<code>echo &#39;hello&#39; | tr -s &#39;l&#39;</code><br>将输入文本，全部转换为大写或小写输出：<code>cat /etc/passwd | tr &#39;[:lower:]&#39; &#39;[:upper:]&#39;</code><br>上面的<code>&#39;[:lower:]&#39;</code> <code>&#39;[:upper:]&#39;</code>你也可以简单的写作<code>&#39;[a-z]&#39;</code> <code>&#39;[A-Z]&#39;</code>,当然反过来将大写变小写也是可以的</p>
<hr>
<p><strong>col </strong>命令<br>col 命令可以将Tab换成对等数量的空格建，或反转这个操作。<br>常用的选项有：</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>-x</td>
<td>将Tab转换为空格</td>
</tr>
<tr>
<td>-h</td>
<td>将空格转换为Tab（默认选项）</td>
</tr>
</tbody>
</table>
<p>操作举例：<br>查看 /etc/protocols 中的不可见字符，可以看到很多 ^I ，这其实就是 Tab 转义成可见字符的符号:<br><code>cat -A /etc/protocols</code><br>使用 col -x 将 /etc/protocols 中的 Tab 转换为空格,然后再使用 cat 查看，你发现 ^I 不见了:<br><code>cat /etc/protocols | col -x | cat -A</code></p>
<hr>
<p><strong>join</strong>命令<br>学过数据库的用户对这个应该不会陌生，这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。</p>
<p>常用的选项有：</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>-t</td>
<td>指定分隔符，默认为空格</td>
</tr>
<tr>
<td>-i</td>
<td>忽略大小写的差异</td>
</tr>
<tr>
<td>-1</td>
<td>指明第一个文件要用哪个字段来对比，默认对比第一个字段</td>
</tr>
<tr>
<td>-2</td>
<td>指明第二个文件要用哪个字段来对比，默认对比第一个字段</td>
</tr>
</tbody>
</table>
<p>操作举例：<br>创建两个文件<br><figure class="highlight sqf"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">echo</span> <span class="string">'1 hello'</span> &gt; file1</div><div class="line"><span class="built_in">echo</span> <span class="string">'1 shiyanlou'</span> &gt; file2</div><div class="line"><span class="built_in">join</span> file1 file2</div></pre></td></tr></table></figure></p>
<p>将/etc/passwd与/etc/shadow两个文件合并，指定以<strong>‘:’</strong>作为分隔符<br><code>sudo join -t&#39;:&#39; /etc/passwd /etc/shadow</code><br>将/etc/passwd与/etc/group两个文件合并，指定以<strong>‘:’</strong>作为分隔符, 分别比对第4和第3个字段<br><code>sudo join -t&#39;:&#39; -1 4 /etc/passwd -2 3 /etc/group</code></p>
<hr>
<p><strong>paste</strong>命令<br>paste这个命令与join 命令类似，它是在不对比数据的情况下，简单地将多个文件合并一起，以Tab隔开。</p>
<p>常用的选项有：</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>-d</td>
<td>指定合并的分隔符，默认为Tab</td>
</tr>
<tr>
<td>-s</td>
<td>不合并到一行，每个文件为一行</td>
</tr>
</tbody>
</table>
<p>操作举例：<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">echo</span> hello &gt; file1</div><div class="line"><span class="built_in">echo</span> shiyanlou &gt; file2</div><div class="line"><span class="built_in">echo</span> www.shiyanlou.com &gt; file3</div><div class="line">paste <span class="_">-d</span> <span class="string">':'</span> file1 file2 file3</div><div class="line">paste <span class="_">-s</span> file1 file2 file3</div></pre></td></tr></table></figure></p>
<hr>
<p><strong>xargs </strong>分割参数列表<br>xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令，以避免参数列表过长的问题。<br>这个命令在有些时候十分有用，特别是当用来处理产生大量输出结果的命令如 find，locate 和 grep 的结果，详细用法请参看 man 文档。<br><code>cut -d: -f1 &lt; /etc/passwd | sort | xargs echo</code><br>上面这个命令用于将/etc/passwd文件按<strong>:</strong>分割取第一个字段排序后，使用echo命令生成一个列表。</p>
<hr>
<p>命令行将<strong>图片转换为 ascii 字符</strong>查看的工具 aview/asciiview(黑白的)<br>彩色的：<br><figure class="highlight vim"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">sudo apt-<span class="built_in">get</span> install caca-utils</div><div class="line">cacaview <span class="symbol">&lt;pic_file&gt;</span></div><div class="line">cacademo</div><div class="line">cacafire</div></pre></td></tr></table></figure></p>
<hr>
<h2 id="重定向"><a href="#重定向" class="headerlink" title="重定向"></a>重定向</h2><p><strong>标准错误重定向</strong></p>
<p>重定向标准输出到文件，这是一个很实用的操作，另一个很实用的操作是将标准错误重定向，标准输出和标准错误都被指向伪终端的屏幕显示，所以我们经常看到的一个命令的输出通常是同时包含了标准输出和标准错误的结果的。比如下面的操作：</p>
<p>使用cat 命令同时读取两个文件，其中一个存在，另一个不存在<br><code>cat Documents/test.c hello.c</code><br>你可以看到除了正确输出了前一个文件的内容，还在末尾出现了一条错误信息<br>下面我们将输出重定向到一个文件，根据我们前面的经验，这里将在看不到任何输出了<br><code>cat Documents/test.c hello.c &gt; somefile</code></p>
<p>这里依然出现了那条错误信息，这正是因为如我上面说的那样，标准输出和标准错误虽然都指向终端屏幕，实际它们并不一样。那有的时候我们就是要可以隐藏某些错误或者警告，那又该怎么做呢。这就需要用到我们前面讲的文件描述符了：</p>
<p>将标准错误重定向到标准输出，再将标准输出重定向到文件，注意要将重定向到文件写到前面<br><code>cat Documents/test.c hello.c &gt;somefile  2&gt;&amp;1</code><br>或者只用bash提供的特殊的重定向符号”&amp;”将标准错误和标准输出同时重定向到文件<br><code>cat Documents/test.c hello.c &amp;&gt;somefilehell</code></p>
<p>注意你应该在输出重定向文件<strong>描述符</strong>前加上<strong>&amp;</strong>,否则shell会当做重定向到一个文件名为1的文件中</p>
<hr>
<p><strong>tee命令</strong>同时重定向到多个文件<br>经常你可能还有这样的需求，除了将需要将输出重定向到文件之外也需要将信息打印在终端<strong>(打印终端的同时输出到文件)</strong>，那么你可以使用tee命令来实现：<br><code>echo &#39;hello shiyanlou&#39; | tee hello</code></p>
<hr>
<p><strong>永久重定向</strong></p>
<p>前面的重定向操作都只是临时性的，即只对当前命令有效，那如何做到“永久”有效呢，比如在一个脚本中，你需要某一部分的命令的输出全部进行重定向，难道要让你在每个命令上面加上临时重定向的操作嘛，当然不需要，我们可以使用<strong>exec</strong>命令实现“永久”重定向。<strong>exec</strong>命令的作用是使用指定的命令替换当前的 Shell，及使用一个进程替换当前进程，或者指定新的重定向：</p>
<p>先开启一个子 Shell:<code>zsh</code><br>使用exec替换当前进程的重定向，将标准输出重定向到一个文件:<code>exec 1&gt;somefile</code><br>后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子shell，或取消exec的重定向（后面将告诉你怎么做）<br><figure class="highlight awk"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">ls</div><div class="line"><span class="keyword">exit</span></div><div class="line">cat somefile</div></pre></td></tr></table></figure></p>
<hr>
<p><strong>创建输出文件描述符</strong><br>默认在 Shell 中可以有9个打开的文件描述符，上面我们使用了也是它默认提供的0,1,2号文件描述符，另外我们还可以使用3-8的文件描述符，只是它们默认没有打开而已，你可以使用下面命令查看当前 Shell 进程中打开的文件描述符：<br><code>cd /dev/fd/;ls -Al</code></p>
<p>同样使用exec命令可以创建新的文件描述符：<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">zsh</div><div class="line"><span class="built_in">exec</span> 3&gt;somefile</div><div class="line"><span class="comment"># 先进入目录，再查看，否则你可能不能得到正确的结果，然后再回到上一次的目录</span></div><div class="line"><span class="built_in">cd</span> /dev/fd/;ls -Al;<span class="built_in">cd</span> -</div><div class="line"><span class="comment"># 注意下面的命令&gt;与&amp;之间不应该有空格，如果有空格则会出错</span></div><div class="line"><span class="built_in">echo</span> <span class="string">"this is test"</span> &gt;&amp;3</div><div class="line">cat somefile</div><div class="line"><span class="built_in">exit</span></div></pre></td></tr></table></figure></p>
<hr>
<p><strong>关闭文件描述符</strong><br>如上面我们打开的3号文件描述符，可以使用如下操作将它关闭：<br><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">exec</span> 3&gt;&amp;-</div><div class="line"><span class="built_in">cd</span> /dev/fd;ls -Al;<span class="built_in">cd</span></div></pre></td></tr></table></figure></p>
<hr>
<p><strong>完全屏蔽命令的输出</strong><br>在 Linux 中有一个被成为“黑洞”的设备文件,所以导入它的数据都将被“吞噬”。<br>在类 UNIX 系统中，<strong>/dev/null</strong>，或称空设备，是一个特殊的设备文件，它通常被用于丢弃不需要的输出流，或作为用于输入流的空文件，这些操作通常由重定向完成。读取它则会立即得到一个<strong>EOF</strong>。<br>我们可以利用设个/dev/null屏蔽命令的输出：<br><code>cat Documents/test.c nefile 1&gt;/dev/null 2&gt;&amp;1</code><br>上面这样的操作将使你得不到任何输出结果。</p>
<hr>
<hr>
<h1 id="网络类"><a href="#网络类" class="headerlink" title="网络类"></a>网络类</h1><h2 id="wget递归下载整个网站"><a href="#wget递归下载整个网站" class="headerlink" title="wget递归下载整个网站"></a>wget递归下载整个网站</h2><p>wget加上参数之后，即可成为相当强大的下载工具。<br><figure class="highlight haml"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">wget -r -p -np -k http://xxx.com/xxx</div><div class="line"></div><div class="line">-<span class="ruby">r,  --recursive（递归）指定使用递归下载</span></div><div class="line">-<span class="ruby">k,  --convert-links（转换链接）将下载的HTML页面中的链接转换为相对链接即本地链接</span></div><div class="line">-<span class="ruby">p,  --page-requisites（页面必需元素）下载所有的图片等页面显示所需的内容</span></div><div class="line">-<span class="ruby">np, --no-parent（不追溯至父级）</span></div><div class="line">-<span class="ruby">nc,   （断点续传）</span></div><div class="line">-<span class="ruby">o,    （日志）</span></div></pre></td></tr></table></figure></p>
<hr>
<h2 id="axel高速下载"><a href="#axel高速下载" class="headerlink" title="axel高速下载"></a>axel高速下载</h2><p>axel是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传，且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。比如在国内VPS或服务器上下载lnmp一键安装包用Axel就比wget快。</p>
<p>如下载lnmp安装包指定10个线程，保存到/tmp/中：<br><figure class="highlight groovy"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">axel -n <span class="number">10</span> -o <span class="regexp">/tmp/</span> <span class="string">http:</span><span class="comment">//www.linuxde.net/lnmp.tar.gz</span></div></pre></td></tr></table></figure></p>
<hr>
<h2 id="监听流量"><a href="#监听流量" class="headerlink" title="监听流量"></a>监听流量</h2><h3 id="iftop"><a href="#iftop" class="headerlink" title="iftop"></a>iftop</h3><p>官方网站：<a href="http://www.ex-parrot.com/~pdw/iftop/" target="_blank" rel="external">http://www.ex-parrot.com/~pdw/iftop/</a><br>安装：<br><strong>源码安装</strong>：<br><figure class="highlight vim"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div></pre></td><td class="code"><pre><div class="line">yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel  #安装依赖</div><div class="line">或</div><div class="line">apt-<span class="built_in">get</span> install flex byacc  libpcap0.<span class="number">8</span> libncurses5   #安装依赖</div><div class="line"></div><div class="line">#编译之前确保已安装好了<span class="keyword">make</span>、gcc、autoconf等。</div><div class="line">wget http://www.<span class="keyword">ex</span>-parrot.<span class="keyword">com</span>/pdw/iftop/download/iftop-<span class="number">0.17</span>.tar.gz</div><div class="line">tar zxvf iftop-<span class="number">0.17</span>.tar.gz</div><div class="line"><span class="keyword">cd</span> iftop-<span class="number">0.17</span></div><div class="line">./configure</div><div class="line"><span class="keyword">make</span> &amp;&amp; <span class="keyword">make</span> install</div></pre></td></tr></table></figure></p>
<p><strong>仓库源安装</strong>：<br>Debian/Ubuntu系统：<code>apt-get install iftop</code><br>Centos/Redhat系统：<a href="https://www.vpser.net/manage/centos-rhel-linux-third-party-source-epel.html" target="_blank" rel="external">安装EPEL源</a>，然后<code>yum install iftop</code>安装</p>
<p><strong>使用</strong>：<code>iftop</code>或<code>iftop -i eth0 -n -p</code></p>
<hr>
<h3 id="nethogs"><a href="#nethogs" class="headerlink" title="nethogs"></a>nethogs</h3><p><code>nethogs eth0</code></p>
<hr>
<h2 id="网页命令行阅读器"><a href="#网页命令行阅读器" class="headerlink" title="网页命令行阅读器"></a>网页命令行阅读器</h2><p><code>w3m 【网址】</code>    网页命令行方式阅读，对于没有桌面环境但在需要判断网页服务是否正常时非常有用。</p>
<hr>
<h2 id="禁ping-（禁用ICMP协议）"><a href="#禁ping-（禁用ICMP协议）" class="headerlink" title="禁ping （禁用ICMP协议）"></a>禁ping （禁用ICMP协议）</h2><figure class="highlight awk"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">“echo <span class="string">"1"</span> &gt;<span class="regexp">/proc/</span>sys<span class="regexp">/net/i</span>pv4<span class="regexp">/icmp_echo_ignore_all”</span></div></pre></td></tr></table></figure>
<p>不能vi编辑，1为禁止ping命令，0为允许ping命令</p>
<hr>
<h2 id="屏幕共享（局域网，公网貌似不行）"><a href="#屏幕共享（局域网，公网貌似不行）" class="headerlink" title="屏幕共享（局域网，公网貌似不行）"></a>屏幕共享（局域网，公网貌似不行）</h2><p>连接的两台电脑（也可多台）命令行显示是实时同步的，两边都可以操作。<br>可能要先安装:<strong>screen</strong><br><figure class="highlight awk"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">screen -S foo 创建会话</div><div class="line">screen -x foo 加入会话</div><div class="line"><span class="keyword">exit</span>退出</div></pre></td></tr></table></figure></p>
<hr>

<!--这里是每篇文章的尾巴-->
<html>
  <body>
    <h1>结语</h1>
      <p>如果您觉得本博客还不错，欢迎继续关注本博客，欢迎多提宝贵意见，非常感谢！</p>
      <div style="text-align:center;color:#ccc;font-size:14px;">------本文结束<i class="fa fa-paw"></i>感谢阅读------</div>
  </body>
</html>

<!--
<html>
  <body>
    <h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2>
    <blockquote><p>如果您觉得本博客还不错，欢迎继续关注本博客，欢迎多提宝贵意见，非常感谢！</p></blockquote></div>
    <div style="text-align:center;color:#ccc;font-size:14px;">------本文结束<i class="fa fa-paw"></i>感谢阅读------</div>
  </body>
</html>

<html>
  <body>
    <h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2>
    <blockquote><p>如果您觉得本博客还不错，欢迎收藏书签，欢迎多提宝贵意见，非常感谢！</p>
    <footer><strong>Welcome to LeoLan'S BLOG</strong>
    <cite><a href="#" onclick="go_my_site()" rel="external">Leo Lan Blog Share For you!</a></cite></footer></blockquote></div>
  </body>
</html>
-->
      
    </div>

    <div>
      
        

      
    </div>

    <div>
      
        
<div style="padding: 10px 0; margin: 20px auto; width: 90%; text-align: center">
  <div style="margin-bottom: 10px;font-size: 16px;font-weight: 600;">您的支持将鼓励我继续创作,非常感谢！</div>
  <button id="rewardButton", disable="enable", onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}", style="cursor: pointer; border: 0; outline: 0; border-radius: 100%; padding: 0; margin: 0; letter-spacing: normal; text-transform: none; text-indent: 0px; text-shadow: none">
    <span onmouseover="this.style.color='rgb(236,96,0)';this.style.background='rgb(204,204,204)'" onMouseOut="this.style.color='#fff';this.style.background='rgb(236,96,0)'" style="display: inline-block; width: 70px; height: 70px; border-radius: 100%; line-height: 81px; color: #fff; font: 400 35px/75px 'microsofty'; background: rgb(236,96,0)">赏</span>
  </button>
    <div id="QR" style="display: none;">
      
        <div id="alipay" style="display: inline-block">
          <img id="alipay_qr" src="http://ofyfogrgx.bkt.clouddn.com//pay/alipay.jpg" alt="LeoLan Alipay" style="width: 200px; max-width: 100%; display: inline-block"/>
          <p>支付宝打赏</p>
        </div>
      
      
        <div id="wechat" style="display: inline-block">
          <img id="wechat_qr" src="http://ofyfogrgx.bkt.clouddn.com//pay/weixinpay.png" alt="LeoLan WeChat Pay" style="width: 200px; max-width: 100%; display: inline-block"/>
          <p>微信打赏</p>
        </div>
      
    </div>
  </div>


<h3 id="最近访客"><a href="#最近访客" class="headerlink" title="最近访客"></a>最近访客</h3><div class="ds-recent-visitors" data-num-items="28" data-avatar-size="42" id="ds-recent-visitors"></div>
      
    </div>

<!--这是文章底部标签云链接
    <footer class="post-footer">
      
        <div class="post-tags">
          
            <a href="/tags/Linux常用命令/" rel="tag"># Linux常用命令</a>
          
        </div>
      
-->
      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
              <a href="/posts/29609/" rel="next" title="重装服务器系统基本配置">
                <i class="fa fa-chevron-left"></i> 重装服务器系统基本配置
              </a>
            
          </div>

          <span class="post-nav-divider"></span>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/posts/26301/" rel="prev" title="群晖DSM_Synology">
                群晖DSM_Synology <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </article>



    <div class="post-spread">
      
        
<script>
  with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js;
</script>

      
    </div>
  </div>


          </div>
          

  <p>热评文章</p>
  <div class="ds-top-threads" data-range="weekly" data-num-items="4"></div>


          
  <div class="comments" id="comments">
    
      <div class="ds-thread" data-thread-key="posts/48230/"
           data-title="Linux常用命令" data-url="https://www.leolan.top/posts/48230/">
      </div>
    
  </div>


        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap" >
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview">
            站点概览
          </li>
        </ul>
      

      <section class="site-overview sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
          <img class="site-author-image" itemprop="image"
               src="/images/avatar.jpg"
               alt="LeoLan" />
          <p class="site-author-name" itemprop="name">LeoLan</p>
          <p class="site-description motion-element" itemprop="description">Better late than never</p>
        </div>
        <nav class="site-state motion-element">
          <div class="site-state-item site-state-posts">
            <a href="/archives">
              <span class="site-state-item-count">56</span>
              <span class="site-state-item-name">日志</span>
            </a>
          </div>

          
            <div class="site-state-item site-state-categories">
              <a href="/categories">
                <span class="site-state-item-count">14</span>
                <span class="site-state-item-name">分类</span>
              </a>
            </div>
          

          
            <div class="site-state-item site-state-tags">
              <a href="/tags">
                <span class="site-state-item-count">80</span>
                <span class="site-state-item-name">标签</span>
              </a>
            </div>
          

        </nav>

        
          <div class="feed-link motion-element">
            <a href="https://www.leolan.top/atom.xml" rel="alternate">
              <i class="fa fa-rss"></i>
              RSS
            </a>

<!-- 自定义High一下的功能 -->
 <a rel="alternate" class="mw-harlem_shake_slow wobble shake" href='javascript:(
   function go() {
   var songs = [
               "http://ofyfogrgx.bkt.clouddn.com/tongxingSibel%20-%20Im%20Sorry.mp3",
               "http://ofyfogrgx.bkt.clouddn.com/Music-sunburst.mp3",
               "http://ofyfogrgx.bkt.clouddn.com/blog/20161115/150103346.mp3",
               "http://ofyfogrgx.bkt.clouddn.com/blog/20161115/150842689.mp3",
               "http://ofyfogrgx.bkt.clouddn.com//blog/Apple%20&%20Stone%20-%20Lost.mp3"
   ];
   
   function c() {
       var e = document.createElement("link");
       e.setAttribute("type", "text/css");
       e.setAttribute("rel", "stylesheet");
       e.setAttribute("href", f);
       e.setAttribute("class", l);
       document.body.appendChild(e)
   }
   function h() {
       var e = document.getElementsByClassName(l);
       for (var t = 0; t < e.length; t++) {
           document.body.removeChild(e[t])
       }
   }
   function p() {
       var e = document.createElement("div");
       e.setAttribute("class", a);
       document.body.appendChild(e);
       setTimeout(function() {
           document.body.removeChild(e)
       }, 100)
   }
   function d(e) {
       return {
           height : e.offsetHeight,
           width : e.offsetWidth
       }
   }
   function v(i) {
       var s = d(i);
       return s.height > e && s.height < n && s.width > t && s.width < r
   }
   function m(e) {
       var t = e;
       var n = 0;
       while (!!t) {
           n += t.offsetTop;
           t = t.offsetParent
       }
       return n
   }
   function g() {
       var e = document.documentElement;
       if (!!window.innerWidth) {
           return window.innerHeight
       } else if (e && !isNaN(e.clientHeight)) {
           return e.clientHeight
       }
       return 0
   }
   function y() {
       if (window.pageYOffset) {
           return window.pageYOffset
       }
       return Math.max(document.documentElement.scrollTop, document.body.scrollTop)
   }
   function E(e) {
       var t = m(e);
       return t >= w && t <= b + w
   }
   function S() {
       var e = document.getElementById("audio_element_id");
       if(e != null){
           var index = parseInt(e.getAttribute("curSongIndex"));
           if(index > songs.length - 2) {
               index = 0;
           } else {
               index++;
           }
           e.setAttribute("curSongIndex", index);
           N();
       }
       e.src = i;
       e.play()
   }
   function x(e) {
       e.className += " " + s + " " + o
   }
   function T(e) {
       e.className += " " + s + " " + u[Math.floor(Math.random() * u.length)]
   }
   function N() {
       var e = document.getElementsByClassName(s);
       var t = new RegExp("\\b" + s + "\\b");
       for (var n = 0; n < e.length; ) {
           e[n].className = e[n].className.replace(t, "")
       }
   }
   function initAudioEle() {
       var e = document.getElementById("audio_element_id");
       if(e === null){
           e = document.createElement("audio");
           e.setAttribute("class", l);
           e.setAttribute("curSongIndex", 0);
           e.id = "audio_element_id";
           e.loop = false;
           e.bgcolor = 0;
           e.addEventListener("canplay", function() {
           setTimeout(function() {
               x(k)
           }, 500);
           setTimeout(function() {
               N();
               p();
               for (var e = 0; e < O.length; e++) {
                   T(O[e])
               }
           }, 15500)
       }, true);
       e.addEventListener("ended", function() {
           N();
           h();
           go();
       }, true);
       e.innerHTML = " <p>If you are reading this, it is because your browser does not support the audio element. We recommend that you get a new browser.</p> <p>";
       document.body.appendChild(e);
       }
   }
   
   initAudioEle();
   var e = 30;
   var t = 30;
   var n = 350;
   var r = 350;
   var curSongIndex = parseInt(document.getElementById("audio_element_id").getAttribute("curSongIndex"));
   var i = songs[curSongIndex];
   
   var s = "mw-harlem_shake_me";
   var o = "im_first";
   var u = ["im_drunk", "im_baked", "im_trippin", "im_blown"];
   var a = "mw-strobe_light";
   /* harlem-shake-style.css，替换成你的位置，也可以直接使用：//s3.amazonaws.com/moovweb-marketing/playground/harlem-shake-style.css */
   var f = "//7xncbk.com1.z0.glb.clouddn.com/harlem-shake-style.css";  
   /* var f = "/css/harlem_shake_style.css";  */

   var l = "mw_added_css";
   var b = g();
   var w = y();
   var C = document.getElementsByTagName("*");
   var k = null;
   for (var L = 0; L < C.length; L++) {
       var A = C[L];
       if (v(A)) {
           if (E(A)) {
               k = A;
               break
           }
       }
   }
   if (A === null) {
       console.warn("Could not find a node of the right size. Please try a different page.");
       return
   }
   c();
   S();
   var O = [];
   for (var L = 0; L < C.length; L++) {
       var A = C[L];
       if (v(A)) {
           O.push(A)
       }
   }
   })()'><i class="menu-item-icon fa fa-music fa-fw"></i>High</a>
</div>
         <!-- end High一下 -->
        

        <div class="links-of-author motion-element">
          
            
              <span class="links-of-author-item">
                <a href="https://github.com/myleolan" target="_blank" title="GitHub">
                  
                    <i class="fa fa-fw fa-github"></i>
                  
                  GitHub
                </a>
              </span>
            
              <span class="links-of-author-item">
                <a href="https://coding.net/u/leolan" target="_blank" title="Coding">
                  
                    <i class="fa fa-fw fa-github-alt"></i>
                  
                  Coding
                </a>
              </span>
            
              <span class="links-of-author-item">
                <a href="http://quickconnect.to/myleolan" target="_blank" title="Cloud">
                  
                    <i class="fa fa-fw fa-cloud"></i>
                  
                  Cloud
                </a>
              </span>
            
              <span class="links-of-author-item">
                <a href="https://git.oschina.net/leolan" target="_blank" title="OSchina">
                  
                    <i class="fa fa-fw fa-git-square"></i>
                  
                  OSchina
                </a>
              </span>
            
          
        </div>

        
        

        
        
          <div class="links-of-blogroll motion-element links-of-blogroll-inline">
            <div class="links-of-blogroll-title">
              <i class="fa  fa-fw fa-heartbeat"></i>
              友链
            </div>
            <ul class="links-of-blogroll-list">
              
                <li class="links-of-blogroll-item">
                  <a href="https://jerry.hk/" title="Jerry Locke" target="_blank" rel="external nofollow">Jerry Locke</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://login926.top" title="Raintons" target="_blank" rel="external nofollow">Raintons</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://www.iamlj.com/" title="Jing's Blog" target="_blank" rel="external nofollow">Jing's Blog</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="https://haiwx.github.io/" title="E-Loli" target="_blank" rel="external nofollow">E-Loli</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://cyang.tech/" title="cyang's blog" target="_blank" rel="external nofollow">cyang's blog</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="https://www.anotherhome.net" title="DIYgod" target="_blank" rel="external nofollow">DIYgod</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://lusongsong.com/" title="卢松松的博客" target="_blank" rel="external nofollow">卢松松的博客</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://v.lusongsong.com/" title="松松视频" target="_blank" rel="external nofollow">松松视频</a>
                </li>
              
                <li class="links-of-blogroll-item">
                  <a href="http://mblack.cn/" title="小黑" target="_blank" rel="external nofollow">小黑</a>
                </li>
              
            </ul>
          </div>
        

        

      </section>

      
      <!--noindex-->
        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">

            
              
            

            
              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#系统管理类"><span class="nav-number">1.</span> <span class="nav-text">系统管理类</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#分析空间大小"><span class="nav-number">1.1.</span> <span class="nav-text">分析空间大小</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#定时任务"><span class="nav-number">1.2.</span> <span class="nav-text">定时任务</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#命令执行"><span class="nav-number">1.3.</span> <span class="nav-text">命令执行</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#后台运行命令"><span class="nav-number">1.4.</span> <span class="nav-text">后台运行命令</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#交互界面的开机启动项：ntsysv-centos"><span class="nav-number">1.5.</span> <span class="nav-text">交互界面的开机启动项：ntsysv(centos)</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#dd命令"><span class="nav-number">1.6.</span> <span class="nav-text">dd命令</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#时区时间"><span class="nav-number">1.7.</span> <span class="nav-text">时区时间</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#文件、目录类"><span class="nav-number">2.</span> <span class="nav-text">文件、目录类</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#cd"><span class="nav-number">2.1.</span> <span class="nav-text">cd</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#权限设置"><span class="nav-number">2.2.</span> <span class="nav-text">权限设置</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#数字设定法"><span class="nav-number">2.2.1.</span> <span class="nav-text">数字设定法</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#文字设定法"><span class="nav-number">2.2.2.</span> <span class="nav-text">文字设定法</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#CUT命令"><span class="nav-number">2.3.</span> <span class="nav-text">CUT命令</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#查找近期修改的文件"><span class="nav-number">2.4.</span> <span class="nav-text">查找近期修改的文件</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#echo"><span class="nav-number">2.5.</span> <span class="nav-text">echo</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#计算MD5"><span class="nav-number">2.6.</span> <span class="nav-text">计算MD5</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#文件上下传"><span class="nav-number">2.7.</span> <span class="nav-text">文件上下传</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#SCP"><span class="nav-number">2.7.1.</span> <span class="nav-text">SCP</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#lrzsz-Windows-Linux"><span class="nav-number">2.7.2.</span> <span class="nav-text">lrzsz(Windows-Linux)</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#ncftp"><span class="nav-number">2.7.3.</span> <span class="nav-text">ncftp</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#man手册转为PDF"><span class="nav-number">2.7.4.</span> <span class="nav-text">man手册转为PDF</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#管道符、awk等高级控制"><span class="nav-number">2.8.</span> <span class="nav-text">管道符、awk等高级控制</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#重定向"><span class="nav-number">2.9.</span> <span class="nav-text">重定向</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#网络类"><span class="nav-number">3.</span> <span class="nav-text">网络类</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#wget递归下载整个网站"><span class="nav-number">3.1.</span> <span class="nav-text">wget递归下载整个网站</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#axel高速下载"><span class="nav-number">3.2.</span> <span class="nav-text">axel高速下载</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#监听流量"><span class="nav-number">3.3.</span> <span class="nav-text">监听流量</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#iftop"><span class="nav-number">3.3.1.</span> <span class="nav-text">iftop</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#nethogs"><span class="nav-number">3.3.2.</span> <span class="nav-text">nethogs</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#网页命令行阅读器"><span class="nav-number">3.4.</span> <span class="nav-text">网页命令行阅读器</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#禁ping-（禁用ICMP协议）"><span class="nav-number">3.5.</span> <span class="nav-text">禁ping （禁用ICMP协议）</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#屏幕共享（局域网，公网貌似不行）"><span class="nav-number">3.6.</span> <span class="nav-text">屏幕共享（局域网，公网貌似不行）</span></a></li></ol></li></ol></div>
            

          </div>
        </section>
      <!--/noindex-->
      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright" >
  
  &copy; 
  <span itemprop="copyrightYear">2016</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">LeoLan</span>
</div>

<div class="powered-by">
  粤ICP325436-2 | 本站总访问量<span id="busuanzi_value_site_pv"></span>
</div>

<div class="theme-info">
  您是第<span id="busuanzi_value_site_uv"></span>位小伙伴
</div>

<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>


        

        
      </div>
    </footer>

    <div class="back-to-top">
      <i class="fa fa-arrow-up"></i>
    </div>
  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  



  
  <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>

  
  <script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>

  
  <script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>


  


  <script type="text/javascript" src="/js/src/utils.js?v=5.1.0"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=5.1.0"></script>



  
  


  <script type="text/javascript" src="/js/src/affix.js?v=5.1.0"></script>

  <script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.1.0"></script>



  
  <script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.0"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.0"></script>



  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.0"></script>



  

  
    
  

  <script type="text/javascript">
    var duoshuoQuery = {short_name:"leolan"};
    (function() {
      var ds = document.createElement('script');
      ds.type = 'text/javascript';ds.async = true;
      ds.id = 'duoshuo-script';
      ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '/js/src/duoshuo_embed.js';
      ds.charset = 'UTF-8';
      (document.getElementById('footer')
      || document.getElementsByTagName('body')[0]).appendChild(ds);
    })();
  </script>

  
    
      
      <script src="/lib/ua-parser-js/dist/ua-parser.min.js?v=0.7.9"></script>
      <script src="/js/src/hook-duoshuo.js?v=5.1.0"></script>
    
    
    <script src="/lib/ua-parser-js/dist/ua-parser.min.js?v=0.7.9"></script>
    <script src="/js/src/hook-duoshuo.js"></script>
  








  
  
  <script type="text/javascript">
    // Popup Window;
    var isfetched = false;
    // Search DB path;
    var search_path = "search.xml";
    if (search_path.length == 0) {
      search_path = "search.xml";
    }
    var path = "/" + search_path;
    // monitor main search box;

    function proceedsearch() {
      $("body").append('<div class="popoverlay">').css('overflow', 'hidden');
      $('.popup').toggle();
    }
    // search function;
    var searchFunc = function(path, search_id, content_id) {
      'use strict';
      $.ajax({
        url: path,
        dataType: "xml",
        async: true,
        success: function( xmlResponse ) {
          // get the contents from search data
          isfetched = true;
          $('.popup').detach().appendTo('.header-inner');
          var datas = $( "entry", xmlResponse ).map(function() {
            return {
              title: $( "title", this ).text(),
              content: $("content",this).text(),
              url: $( "url" , this).text()
            };
          }).get();
          var $input = document.getElementById(search_id);
          var $resultContent = document.getElementById(content_id);
          $input.addEventListener('input', function(){
            var matchcounts = 0;
            var str='<ul class=\"search-result-list\">';
            var keywords = this.value.trim().toLowerCase().split(/[\s\-]+/);
            $resultContent.innerHTML = "";
            if (this.value.trim().length > 1) {
              // perform local searching
              datas.forEach(function(data) {
                var isMatch = false;
                var content_index = [];
                var data_title = data.title.trim().toLowerCase();
                var data_content = data.content.trim().replace(/<[^>]+>/g,"").toLowerCase();
                var data_url = decodeURIComponent(data.url);
                var index_title = -1;
                var index_content = -1;
                var first_occur = -1;
                // only match artiles with not empty titles and contents
                if(data_title != '') {
                  keywords.forEach(function(keyword, i) {
                    index_title = data_title.indexOf(keyword);
                    index_content = data_content.indexOf(keyword);
                    if( index_title >= 0 || index_content >= 0 ){
                      isMatch = true;
                      if (i == 0) {
                        first_occur = index_content;
                      }
                    }

                  });
                }
                // show search results
                if (isMatch) {
                  matchcounts += 1;
                  str += "<li><a href='"+ data_url +"' class='search-result-title'>"+ data_title +"</a>";
                  var content = data.content.trim().replace(/<[^>]+>/g,"");
                  if (first_occur >= 0) {
                    // cut out 100 characters
                    var start = first_occur - 20;
                    var end = first_occur + 80;
                    if(start < 0){
                      start = 0;
                    }
                    if(start == 0){
                      end = 50;
                    }
                    if(end > content.length){
                      end = content.length;
                    }
                    var match_content = content.substring(start, end);
                    // highlight all keywords
                    keywords.forEach(function(keyword){
                      var regS = new RegExp(keyword, "gi");
                      match_content = match_content.replace(regS, "<b class=\"search-keyword\">"+keyword+"</b>");
                    });

                    str += "<p class=\"search-result\">" + match_content +"...</p>"
                  }
                  str += "</li>";
                }
              })};
            str += "</ul>";
            if (matchcounts == 0) { str = '<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>' }
            if (keywords == "") { str = '<div id="no-result"><i class="fa fa-search fa-5x" /></div>' }
            $resultContent.innerHTML = str;
          });
          proceedsearch();
        }
      });}

    // handle and trigger popup window;
    $('.popup-trigger').click(function(e) {
      e.stopPropagation();
      if (isfetched == false) {
        searchFunc(path, 'local-search-input', 'local-search-result');
      } else {
        proceedsearch();
      };
    });

    $('.popup-btn-close').click(function(e){
      $('.popup').hide();
      $(".popoverlay").remove();
      $('body').css('overflow', '');
    });
    $('.popup').click(function(e){
      e.stopPropagation();
    });
  </script>


  

  

  
  <script src="https://cdn1.lncld.net/static/js/av-core-mini-0.6.1.js"></script>
  <script>AV.initialize("zieuxKa4IjAP6VgxxvBe4vkj-gzGzoHsz", "MHGN54IEuofFNV1AROiRkEoG");</script>
  <script>
    function showTime(Counter) {
      var query = new AV.Query(Counter);
      var entries = [];
      var $visitors = $(".leancloud_visitors");

      $visitors.each(function () {
        entries.push( $(this).attr("id").trim() );
      });

      query.containedIn('url', entries);
      query.find()
        .done(function (results) {
          var COUNT_CONTAINER_REF = '.leancloud-visitors-count';

          if (results.length === 0) {
            $visitors.find(COUNT_CONTAINER_REF).text(0);
            return;
          }

          for (var i = 0; i < results.length; i++) {
            var item = results[i];
            var url = item.get('url');
            var time = item.get('time');
            var element = document.getElementById(url);

            $(element).find(COUNT_CONTAINER_REF).text(time);
          }
          for(var i = 0; i < entries.length; i++) {
            var url = entries[i];
            var element = document.getElementById(url);
            var countSpan = $(element).find(COUNT_CONTAINER_REF);
            if( countSpan.text() == '') {
              countSpan.text(0);
            }
          }
        })
        .fail(function (object, error) {
          console.log("Error: " + error.code + " " + error.message);
        });
    }

    function addCount(Counter) {
      var $visitors = $(".leancloud_visitors");
      var url = $visitors.attr('id').trim();
      var title = $visitors.attr('data-flag-title').trim();
      var query = new AV.Query(Counter);

      query.equalTo("url", url);
      query.find({
        success: function(results) {
          if (results.length > 0) {
            var counter = results[0];
            counter.fetchWhenSave(true);
            counter.increment("time");
            counter.save(null, {
              success: function(counter) {
                var $element = $(document.getElementById(url));
                $element.find('.leancloud-visitors-count').text(counter.get('time'));
              },
              error: function(counter, error) {
                console.log('Failed to save Visitor num, with error message: ' + error.message);
              }
            });
          } else {
            var newcounter = new Counter();
            /* Set ACL */
            var acl = new AV.ACL();
            acl.setPublicReadAccess(true);
            acl.setPublicWriteAccess(true);
            newcounter.setACL(acl);
            /* End Set ACL */
            newcounter.set("title", title);
            newcounter.set("url", url);
            newcounter.set("time", 1);
            newcounter.save(null, {
              success: function(newcounter) {
                var $element = $(document.getElementById(url));
                $element.find('.leancloud-visitors-count').text(newcounter.get('time'));
              },
              error: function(newcounter, error) {
                console.log('Failed to create');
              }
            });
          }
        },
        error: function(error) {
          console.log('Error:' + error.code + " " + error.message);
        }
      });
    }

    $(function() {
      var Counter = AV.Object.extend("Counter");
      if ($('.leancloud_visitors').length == 1) {
        addCount(Counter);
      } else if ($('.post-title-link').length > 1) {
        showTime(Counter);
      }
    });
  </script>



  
<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';        
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>


  


<!-- 背景动画 -->
<script type="text/javascript" src="/js/src/particle.js" count="50" zindex="-2" opacity="1" color="0,104,183"></script>

</body>
</html>
